We directly get the length of the secret from the g_variant
and use it in a following g_strndup which ensures that the
resulting string is terminated.
This fixes reading secrets which were stored by system-config-printer.
https://bugzilla.gnome.org/show_bug.cgi?id=740612
g_variant_unref (secret);
- if (ba_passwd == NULL || strlen (ba_passwd) > len + 1)
+ if (ba_passwd == NULL)
{
- /* No secret or the secret is not a zero terminated value */
- GTK_NOTE (PRINTING, g_print ("Invalid secret.\n"));
+ GTK_NOTE (PRINTING, g_print ("Invalid / no secret found.\n"));
g_variant_unref (s_value);
goto fail;
}